package com.start.pay.core.interfaces;

import com.start.pay.core.entity.StartPayOrderEntity;
import com.start.pay.core.model.PlatformOrderPayResult;
import com.start.pay.core.model.PlatformOrderResult;
import com.start.pay.core.model.PlatformResult;

public interface StartBasePlatformPayOrder {
    PlatformResult createPay(StartPayOrderEntity entity);

    /**
     * 支付回调处理
     *
     * @return
     */
    PlatformOrderResult payCallBack(String appId, String platformCallData);

    /**
     * 退款订单
     *
     * @param entity
     * @return
     */
    PlatformResult refundOrder(StartPayOrderEntity entity);

    /**
     * 退款回调
     *
     * @return
     */
    PlatformOrderResult refundCallBack(String appId, String platformCallData);

    /**
     * 查询支付订单
     *
     * @param orderEntity
     * @return
     */
    PlatformOrderPayResult queryPayOrder(StartPayOrderEntity orderEntity);

    /**
     * 查询退款订单
     *
     * @param orderEntity
     * @return
     */
    PlatformOrderPayResult queryRefundOrder(StartPayOrderEntity orderEntity);
}
